package com.itheima.tcp_demo.demo2;


import java.io.*;
import java.net.Socket;

/*
    TCP协议 : 面向连接
    客户端 : 发送数据

    发送数据的步骤
        1 创建客户端的Socket对象 : Socket(String host, int port) 与指定服务端连接
            参数说明：
            host 表示服务器端的主机名，也可以是服务器端的IP地址，只不过是String类型的
            port 表示服务器端的端口

        2 通获Socket对象取网络中的输出流，写数据
            OutputStream getOutputStream​()

        3 释放资源
            void close​()
 */
public class ClientDemo {
    public static void main(String[] args) throws IOException {
        // 创建客户端的Socket对象 : Socket(String host, int port) 与指定服务端连接
        Socket socket = new Socket("127.0.0.1", 10010);

        // 通获Socket对象取网络中的输出流，写数据
//        OutputStream os = socket.getOutputStream();
//        // 把网络中字节输出流 封装成 高效的字符输出流
//        OutputStreamWriter osw = new OutputStreamWriter(os);
//        BufferedWriter bw = new BufferedWriter(osw);
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        // 发送数据
        bw.write("你好啊~");
        // 写的是换行符号 , 代表的是 "你好啊~"一行数据
        bw.newLine();
        // 如果使用字符流发送数据不要忘记写刷新
        bw.flush();

        // ==========================================================================

        // 获取网络中的字节输入流 封装成 高效的字符输入流
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String s = br.readLine();
        System.out.println(s);


        // 释放资源
        br.close();
        bw.close();
        socket.close();


    }
}
